﻿#pragma once

#include "TestAPI.h"

// CServerDlg 对话框
// 打印服务主窗体，显示当前正在配药的处方信息以及药框编号;
class CServerDlg : public CDialog
{
	DECLARE_DYNAMIC(CServerDlg)

public:
	CServerDlg(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CServerDlg();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_DLG_SERVER };
#endif

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()

public:
	void init();
	void showRecipeInfoList(RecipeDrugInfoSet infoList);
	void showServerInfo(std::string info);
	void updatePrinterIP(std::string printIp);

public:
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	afx_msg LRESULT OnUpdatePrintStatus(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnUpdateRecipeNum(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnUpdateMedicineBoxId(WPARAM wParam, LPARAM lParam);
	afx_msg void OnSize(UINT nType, int cx, int cy);

	virtual BOOL PreTranslateMessage(MSG* pMsg);
	virtual BOOL OnInitDialog();

private:
	void ChangeSize(UINT nID, int x, int y); // nID 为控件ID, x y 分别为对话框的当前长和宽;
public:

	CIPAddressCtrl m_ctrlIPAddr;    // 当前打印机IP地址
	CListCtrl m_CurRecipeListCtrl;	// 当前待打印处方信息
	CString m_strName;
	CString m_strSex;
	CString m_strAge;

	RecipeDrugInfoSet currRecipeInfo;
	CString m_strMedicineId;          // 药框编号
	CString m_strRecipeId;            // 处方编号;
	CString m_strPrintStatus;         // 打印机状态;
									  // 服务器相关的一些提示信息
	CString m_strShowInfo;            
	
	CString m_strRecipeAll;          // 处方总数   
	CString m_strRecipeProcessed;	 // 已处理的处方数
	CString m_strRecipeWait;      // 待处理的处方数

	CStatic m_ctrlAll;
	CStatic m_CtrlFinish;
	CStatic m_CtrlWait;

	CRect m_rect;                   // 用于保存原来对话框大小;


};
